﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace PPE_gestion_commercial
{

    public partial class AjoutProduit : Form
    {
        // Définition des variables pour la connexion avec SQL Server
        SqlConnection connex;
        SqlCommand cmd;
        SqlDataReader dr;
        SqlDataReader dr2;
        SqlDataReader dr3;

        // Connexion à la base
        string strconn = "server=78.241.116.47;Network Library=DBMSSOCN; database=gestion; User Id=Gestion; Password=gestion";
        
        public AjoutProduit()
        {
            InitializeComponent();
        }

        private void Form4_Load(object sender, EventArgs e)
        {
            List<categorie> listeCategorie = new List<categorie>();

            connex = new SqlConnection();
            connex.ConnectionString = strconn;
            connex.Open();

            string sqlCat = "SELECT idType,nomType FROM typeProduit order by idType";
            cmd = new SqlCommand(sqlCat, connex);
            dr3 = cmd.ExecuteReader();
            while (dr3.Read())
            {
                categorie cat = new categorie();
                cat.id = Convert.ToInt32(dr3[0]);
                cat.cat = dr3[1].ToString();
                listeCategorie.Add(cat);
            }
            dr3.Close();
            connex.Close();
            int i = 1;
            foreach (categorie c in listeCategorie)
            {
                catComboBox.Items.Add(c.cat);
                i++;
            }
        }

        // Fonction qui vérifie si tout les champs sont remplis
        private bool rempliTout()
        {
            bool ok = false;

            if (nomProdBox.Text != "" && descProdBox.Text != "" && prixProdBox.Text != "" && quantProdBox.Text != "")
            {
                ok = true;
            }

            return ok;
        }

        // Fonction qui se lance lorsqu'on clique sur le bouton Valider
        private void button1_Click(object sender, EventArgs e)
        {
            // Définition des variables
            bool verif;
            string maxProd = "";

            // On effectue la vérification
            verif = rempliTout();

            // Si tout est rempli, on va ajouter le client dans la Base de données (BDD)
            if (verif)
            {
                connex.Open();
                // On récupère l'identifiant du produit maximal qui se trouve dans la BDD
                string sql = "SELECT max(idProduit) FROM produit";
                cmd = new SqlCommand(sql, connex);
                dr = cmd.ExecuteReader();

                dr.Read();
                if (dr[0] != DBNull.Value)
                {
                    maxProd = dr[0].ToString();
                }
                else maxProd= "0";
                dr.Close();

                int max = Convert.ToInt16(maxProd);

                max = max + 1;

                // On exécute la requête qui va ajouter le produit dans la BDD avec les données saisies 
                string sql2 = "insert into produit values(" + max + ",'" + nomProdBox.Text.Replace("'", "''") + "','" + catComboBox.SelectedItem.ToString() + "','" +
                    descProdBox.Text.Replace("'","''") + "'," + prixProdBox.Text + "," + quantProdBox.Text + ")";
                cmd = new SqlCommand(sql2, connex);
                dr2 = cmd.ExecuteReader();

                // Fermeture du curseur
                dr2.Close();

                // Fermeture de la connexion à la BDD
                connex.Close();

                // Affichage de l'action effectué
                MessageBox.Show("Votre produit a bien été ajouté");
            }
            else
                //Sinon on affiche que des champs ne sont pas remplis
                MessageBox.Show("Vous n'avez pas rempli tout les champs");

        }

        private void supprimerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SuppProduit f8 = new SuppProduit("");
            f8.Show();
            this.Close();
        }
        private void supprimerToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            SuppClient f7 = new SuppClient("");
            f7.Show();
            this.Close();
        }

        private void modifierToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            ModifClient f5 = new ModifClient();
            f5.Show();
            this.Close();
        }

        private void modifierToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ModifProduit f6 = new ModifProduit();
            f6.Show();
            this.Close();
        }
        private void ajouterToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AjoutProduit f4 = new AjoutProduit();
            f4.Show();
            this.Close();
        }

        private void ajouterToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            AjoutClient f2 = new AjoutClient();
            f2.Show();
            this.Close();
        }

        private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {

        }

        private void ajoutCatButton_Click(object sender, EventArgs e)
        {
            AjoutSuppCategorie f3 = new AjoutSuppCategorie("ajout");
            f3.Show();
            this.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
        }

    }
    public class categorie
    {
        public int id;
        public string cat;
    }
}
